package router

import (
    "log"
    
    "github.com/gin-gonic/gin"
    "{{.ProjectModule}}/controller"
    "{{.ProjectModule}}/service"
    "{{.ProjectModule}}/repository"
    "{{.ProjectModule}}/config" // 导入全局数据库配置
)

// SetupGeneratedRoutes 注册所有生成的路由
func SetupGeneratedRoutes(v1 *gin.RouterGroup) {
    db := config.GetDB() // 使用全局数据库连接
    
    {{- range .Tables}}
    // {{.ModelName}} 路由
    {{.VarName}}Repo := repository.New{{.ModelName}}Repository(db)
    {{.VarName}}Service := service.New{{.ModelName}}Service({{.VarName}}Repo)
    {{.VarName}}Controller := controller.New{{.ModelName}}Controller({{.VarName}}Service)
    
    v1.POST("/{{.PluralName}}", {{.VarName}}Controller.Create)
    v1.GET("/{{.PluralName}}", {{.VarName}}Controller.GetAll)
    v1.GET("/{{.PluralName}}/:id", {{.VarName}}Controller.GetByID)
    v1.PUT("/{{.PluralName}}/:id", {{.VarName}}Controller.Update)
    v1.DELETE("/{{.PluralName}}/:id", {{.VarName}}Controller.Delete)
    {{- end}}
    
    log.Println("✅ 路由注册完成")
}

// 使用方法示例
/*
func main() {
    // 初始化数据库
    config.InitDatabase()
    
    // 初始化路由
    r := gin.Default()
    v1 := r.Group("/api/v1")
    
    // 注册所有生成的路由
    SetupGeneratedRoutes(v1)
    
    // 启动服务器
    log.Println("🚀 服务器启动在 :8080")
    r.Run(":8080")
}
*/